Skip to content

fix(web): remember panel width for each thread - #11310

Open
shivamhwp wants to merge 1 commit into
fix/client-device-ticket-http-groupfrom
fix/web-thread-panel-width
Open

fix(web): remember panel width for each thread#11310
shivamhwp wants to merge 1 commit into
fix/client-device-ticket-http-groupfrom
fix/web-thread-panel-width

Conversation

@shivamhwp

Copy link
Copy Markdown
Collaborator

Resizing the right panel in thread B overwrote thread A's width. Each thread now remembers its own width, scoped to its environment, and switching threads reloads that width without remounting the panel. An unfinished drag is cancelled when the thread changes.

Fixes #5548. Stacked on #11298 for the device-ticket routing correction already required by this checkout. The three-file diff contains only panel-width behavior and its tests. Threads without a saved width start at the existing default; the previous shared chat width is not migrated. The pull-request page keeps its separate width key.

Fifteen focused tests and the web typecheck pass. Both new switching tests fail on the original hook, and the 17 scoped lint warnings match baseline. In the actual Linux Chromium client, A was resized to 380 px and B to 540 px: returning to A showed 540 px before and 380 px after. Reload retained 380 px. Native macOS/Windows desktop, mobile and remote/relay integration were not exercised.

Before, returning to A uses B's width:

Before: thread A incorrectly keeps the 540 px panel width

After, A restores its 380 px width:

After: thread A restores its own panel width

5548-switch.mp4

Default-behavior refinement remains pending after the authorized Fable retry failed. No merge requested.

Implemented and tested with GPT-6 through Codex in T3 Code.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Sep 11, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 83303d6

Macroscope's review found this PR approvable — This is a small, localized web fix that scopes existing preview-panel width persistence by thread and adds focused coverage for switching and interrupted drags. It leaves defaults and unrelated runtime paths unchanged, with no schema, infrastructure, security, or diagnostic-configuration impact.

You can add or adjust custom eligibility rules. Learn more.

@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.6 KiB 15.1 KiB
Codex Thread snapshot wire 7.0 KiB 7.3 KiB
Codex Live turn WebSocket wire 6.5 KiB 7.8 KiB
Codex Live turn WebSocket decoded 57.0 KiB 66.4 KiB
Codex Live turn messages 8 21
Claude Total thread wire 13.6 KiB 15.1 KiB
Claude Thread snapshot wire 7.1 KiB 7.3 KiB
Claude Live turn WebSocket wire 6.6 KiB 7.8 KiB
Claude Live turn WebSocket decoded 57.9 KiB 66.4 KiB
Claude Live turn messages 10 21

Baseline: unavailable · PR result: 83303d6 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant